<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>promise封装ajax请求</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box {
            margin-top: 50px;
            margin-left: 50px;
        }
        #btn {
            width: 120px;
            height: 30px;
            background-color: rgb(13, 70, 238);
            border-radius: 5px;
            color: white;
        }
    </style>
</head>
<body>
    <div class="box">
        <h1>Promise 封装 AJAX 操作</h1>
        <button id="btn">点击发送AJAX</button>

        <script>
            const btn = document.getElementById('btn');
            btn.addEventListener('click',function() {
                //创建promise
                const p = new Promise((resolve,reject)=>{
                    //1.创建对象
                    const xhr = new XMLHttpRequest();
                    //2.初始化
                    xhr.open('GET','https://api.apiopen.top/getJoke');
                    //3.发送
                    xhr.send();
                    //4.处理响应结果
                    xhr.onreadystatechange = function () {
                        if (xhr.readyState === 4) {
                            //状态码2xx
                            if(xhr.status >= 200 && xhr.status < 300){
                                resolve(xhr.response);
                            }else{
                                reject(xhr.status);
                            }
                        }
                    }
                })
                p.then(value=>{
                    console.log(value);
                },reason=>{
                    console.warn(reason);
                })
            })
        </script>
    </div>
</body>
</html>